.container {
  width: 100%;

  padding: 16px 16px 100px;

  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;

  .switch {
    width: 154px;
    height: 38px;
    background: #ff457a;
    border-radius: 28px;

    display: flex;
    justify-content: space-around;
    align-items: center;

    position: relative;

    &__item {
      z-index: 1;
      font-size: 16px;
      line-height: 16px;
      color: #fff;

      transition: color 0.3s ease;

      &--active {
        color: #ff457a;
      }
    }

    &__background-board {
      position: absolute;
      top: 2px;
      z-index: 0;

      width: calc(50% - 2px);
      height: 34px;
      background: #ffffff;
      border-radius: 29px;

      transition: transform 0.3s ease;

      &--left {
        transform: translateX(-50%);
      }

      &--right {
        transform: translateX(50%);
      }
    }
  }

  .schedule-list {
    width: 100%;

    display: flex;
    flex-direction: column;
    row-gap: 24px;

    .year-schedule {
      width: 100%;
      display: flex;
      flex-direction: column;
      gap: 16px;
      &__year {
        font-size: 18px;
        color: #333;
      }
      .month-schedule {
        width: 100%;

        display: flex;
        column-gap: 23px;

        &__month {
          width: 44px;
          height: 44px;
          border: 0.5px solid #ff457a;
          border-radius: 50%;
          box-shadow: 0px 2px 4px 0px rgba(255, 153, 153, 0.25);

          display: flex;
          justify-content: center;
          align-items: center;

          font-size: 16px;
          color: #333;
        }

        .day-schedule {
          flex: 1;
          display: flex;
          flex-wrap: wrap;
          gap: 16px 12px;

          .schedule-item {
            width: 44px;
            height: 44px;
            border-radius: 50%;
            box-shadow: 0px 2px 4px 0px rgba(255, 153, 153, 0.25);

            display: flex;
            flex-direction: column;
            justify-content: center;
            align-items: center;

            &__day {
              font-size: 12px;
              line-height: 12px;
              color: #333;
            }

            &__type {
              font-size: 10px;
              line-height: 10px;
              color: #438eff;

              &--yellow {
                color: #ffb443;
              }
            }
          }
        }
      }
    }
  }

  .schedule-calender {
    width: 100%;

    display: flex;
    flex-direction: column;
    align-items: center;
    row-gap: 24px;

    .month-schedule {
      width: 100%;

      &__title {
        font-size: 14px;
        font-weight: bold;
        color: #ff457a;

        position: relative;

        &::after {
          position: absolute;
          content: '';
          bottom: -4px;
          left: 2px;

          width: 24px;
          height: 2px;
          background: #ff457a;
          border-radius: 9px;
        }
      }

      &__content {
        padding-top: 20px;
        display: flex;
        flex-direction: column;
        row-gap: 18px;

        .schedule-card {
          width: 100%;

          display: grid;
          grid-template:
            '. header header' min-content
            '. people phone' min-content
            '. address phone' min-content
            'remark remark remark' min-content
            / 15px 1fr min-content;
          gap: 8px;

          &__header {
            grid-area: header;
            width: 100%;

            display: flex;
            align-items: center;

            color: #ff457a;
            text-align: center;

            .date-icon {
              width: 18px;
              height: 18px;
            }

            .date {
              margin-left: 10px;
            }

            .time {
              margin-left: 10px;
            }
          }

          &__people {
            grid-area: people;
          }

          &__address {
            grid-area: address;
          }

          &__people,
          &__address {
            display: flex;
            align-items: center;
            column-gap: 12px;
            color: #848a9a;

            font-size: 14px;
            line-height: 14px;

            .icon {
              width: 18px;
              height: 18px;
            }
          }

          &__phone {
            grid-area: phone;
            justify-self: end;
            align-self: center;

            width: 52px;
            height: 52px;
          }

          &__remark {
            grid-area: remark;

            width: 100%;
            background-color: #ffebed;

            padding: 4px 16px;

            font-size: 12px;
            color: #b8b8b8;
          }
        }
      }
    }
  }
}
